package com.young.study.File;

import java.io.File;
import java.io.IOException;

/**
 * 1.File的两个常用静态变量（分隔符）
 * 2.相对路径和绝对路径
 * 3.File的常见构建方式
 */
public class Demo01 {
    public static void main(String[] args) throws IOException {
//        //1.测试切割符
//        testSeperate();
//        //2.测试路径
//        testPath();
        testCreate();
    }

    /*
    分隔符测试
     */
    static void testSeperate(){
        //名称切割符
        //On UNIX systems the value of this
        //     * field is <code>'/'</code>; on Microsoft Windows systems it is <code>'\\'</code>
        System.out.println(File.separator);
        System.out.println(File.separatorChar);

        //路径切割符
        //     * On UNIX systems, this character is <code>':'</code>; on Microsoft Windows systems it
        //     * is <code>';'</code>.
        System.out.println(File.pathSeparator);
        System.out.println(File.pathSeparatorChar);
    }

    /*
    路径测试
     */
    static void testPath() throws IOException {
        testPathForOuterFile();
        testPathForInnerFile();
    }

    /**
     * 外部文件的路径测试
     * @throws IOException
     */
    static void testPathForOuterFile() throws IOException {
        //1.获取项目外的文件，并得到其
        File file = new File("E:/1.txt");
        //获取路径，
        String path = file.getPath();
        //获取规范路径
        String path1 = file.getCanonicalPath();
        //获取绝对路径
        String path2 = file.getAbsolutePath();
        System.out.println(path);
        System.out.println(path1);
        System.out.println(path2);
    }

    /**
     * 内部文件的路径测试
     * @throws IOException
     */
    static void testPathForInnerFile() throws IOException {
        //1.获取项目内的文件，并得到其路径
        File file = new File("1.txt");
        //获取路径，
        String path = file.getPath();
        //获取规范路径
        String path1 = file.getCanonicalPath();
        //获取绝对路径
        String path2 = file.getAbsolutePath();
        System.out.println(path);
        System.out.println(path1);
        System.out.println(path2);
    }

    /**
     * 创建文件的常见方式
     * 1.根据绝对路径创建一个文件
     * 2.根据相对路径创建一个文件
     */
    static void testCreateFile() throws IOException {
        //1.根据绝对路径得到一个File对象
        File file  = new File("E:/111/1.txt");
        //2.根据相对路径得到一个File对象
        File file1 = new File ("1.txt");
    }

    /**
     * 1.创建一个目录
     * 2.创建一个文件
     */
    static void testCreate() throws IOException {
        //1.创建一个名为demo01的目录（目录其实也可以带有后缀名）
        File file = new File("E:/test1/demo01/de01");
        //注明：mkdir和mkdirs的区别：
            //mkdir:若目录不存在，则不创建
            //mkdirs：若目录不存在，则一并创建
        System.out.println(file.mkdir());
        System.out.println(file.mkdirs());


        //2.创建一个名为demo02.txt的文件
        File file1 = new File("E:/test1/demo02.txt");
        file1.createNewFile();
    }
}
